package rddSummary.transition.value_type

import org.apache.spark.{SparkConf, SparkContext}

object test_repatition {
  def main(args: Array[String]): Unit = {

    val conf = new SparkConf().setAppName("test").setMaster("local")
    val context = new SparkContext(conf)

    val dates = context.makeRDD(List(1,2,3,4, 1, 2, 3),2)

    /**
     * 该操作内部其实执行的是 coalesce 操作，参数 shuffle 的默认值为 true。无论是将分区数多的
     * RDD转换为分区数少的RDD，还是将分区数少的RDD转换为分区数多的RDD，repartition
     * 操作都可以完成，因为无论如何都会经 shuffle 过程。
     */
    val value = dates.repartition(4)

    value.collect().foreach(println)

    context.stop()
  }

}
